The problems associated with the current technology in this field are further detailed in the following description. Modern event-driven user interfaces provide a rich medium for interaction. The user often has a large set of available options which allows him to take the initiative in communicating with the machine. In many applications, however, it can be difficult to provide a large number of options without having complex and expensive devices to operate such applications. For example, speech-only interfaces, especially over the telephone, are highly constrained by the inability of current devices to accurately recognise more than a few keywords and phrases at a time. As a consequence, spoken dialogues for current commercial systems are typically implemented as flow charts in which each question and answer are explicitly scripted. This explicit “finite-state network” control of dialogue allows the range of possible inputs at any point in time to be carefully controlled and thereby allows robust and useable dialogues to be built. A secondary benefit of the “finite-state network” approach is that it has been used for many years in interactive voice response (IVR) applications and it is therefore familiar to a substantial existing developer community.
However, without extensive application-dependent handcrafting of the dialogues, the use of explicit finite state control results in applications that are heavily system directed and which prevent the user from taking any initiative. Applications built this way are typically inflexible and expensive to develop. Dialogues are long and tedious and frequent users are frustrated by the need to navigate a long and immutable sequence of questions and answers.
A further example that relates to the invention is the interface associated with browsing and data input through web sites on the Internet. The system already exists that is natural to use with the aid of links between relevant sites but as a user interacts with the available pages he may be required to provide certain details in order to achieve certain results or obtain required information. In moving among web pages, perhaps via a relevant link, individual details of information may be requested by each page. This process of having to enter multiple details in numerous places can be tedious, inconvenient and prove to be an inefficient use of time.
In many cases, the details could usefully be gathered in a single interaction and carried forward to the subsequent choices of sites to reduce the quantity of individual entries that may need to be given. If, however, the user notices and corrects a mistake in the details, this information could be passed back to the previous pages visited where the data was required and/or originally entered.
There is, therefore, a requirement to provide interfaces which allow for premature delivery of information to reduce the frequently tedious nature of current human machine interfaces. In addition, it is necessary to be able to “back-track” when an incorrect sequence has been followed. An inexperienced user may be guided through a rigid, predetermined sequence of questions which require specific answers. However, the application ought to be able to be used in a more flexible and concise manner by those users with prior knowledge of the dialogue. Ideally, the interface should allow the presentation of details in advance of them being requested. Meanwhile the application must be efficient, simple and intuitive to program and maintain the robust nature of the “finite-state network” approach as for speech only interfaces finite-state control is essential to constrain the range of inputs that can be recognised at any one time.